#ifndef TEMPLATE_DEFAULTSTATE_HPP
#define TEMPLATE_DEFAULTSTATE_HPP

#include "State.hpp"
#include "../TweenObjects.hpp"
#include <cpp3ds/Graphics/Sprite.hpp>
#include <cpp3ds/Graphics/Texture.hpp>
#include <cpp3ds/System/Clock.hpp>
#include <cpp3ds/Graphics/RectangleShape.hpp>
#include <TweenEngine/TweenManager.h>
#include <cpp3ds/Audio/SoundBuffer.hpp>
#include <cpp3ds/Audio/Sound.hpp>
#include <cpp3ds/Audio/Music.hpp>

namespace Template {

class DefaultState : public State
{
public:
	DefaultState(StateStack& stack, Context& context, StateCallback callback);
	~DefaultState();

	virtual void renderTopScreen(cpp3ds::Window& window);
	virtual void renderBottomScreen(cpp3ds::Window& window);
	virtual bool update(float delta);
	virtual bool processEvent(const cpp3ds::Event& event);

private:
	util3ds::TweenText m_helloWorldText;
	cpp3ds::Text m_complexText;

	TweenEngine::TweenManager m_tweenManager;
};

extern DefaultState *g_defaultState;

} // namespace Template

#endif // TEMPLATE_DEFAULTSTATE_HPP
